package com.future.message.Service;

import com.future.message.Utils.ResponseResult;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public interface FileService {
    /**
     * 单文件上传（可上传视频）
     *
     * @param file
     * @return
     */
    String fileUpLoad(MultipartFile file);

    /**
     * 上传文件
     * @param file
     * @return
     */
   ResponseResult uploadRelevantFile(MultipartFile file,Integer userId,Integer relevantReportId);

   ResponseResult uploadIndexFile(MultipartFile file,Integer indexId);

    /**
     * 批量上传文件
     * @param file
     * @return
     */
    ResponseResult batchUploadFile(MultipartFile []file,Integer userId,Integer relevantReportId);

    ResponseResult batchUploadIndexFile(MultipartFile []file,Integer indexId);
    /**
     * 删除文件
     * @param fileName
     * @param dataId
     * @param userId
     * @return
     */
   ResponseResult deleteFile(String fileName,Integer dataId,Integer userId);

    /**
     * 删除指标的附件
     * @param fileName
     * @param indexId
     * @return
     */
   ResponseResult deleteIndexFile(String fileName,Integer indexId);

   ResponseResult testUpload(MultipartFile file,HttpServletRequest request);

    /**
     * 下载填报关联的文件
     * @param userId
     * @param relevantReportId
     * @param fileName
     * @param response
     */
    void downLoadRelevantFile(Integer userId,Integer relevantReportId,String fileName, HttpServletResponse response);

    /**
     * 下载指标的附件
     * @param indexId
     * @param fileName
     * @param response
     */
    void downLoadIndexFile(Integer indexId,String fileName,HttpServletResponse response);

   ResponseResult downTest(Integer userId,Integer relevantReportId,String fileName);

    /**
     * 继承某一个指标的文件到一个新的指标
     * @param oldIndexId
     * @param newIndexId
     */
   void extendsFile(Integer oldIndexId,Integer newIndexId);

    /**
     * 将指标的附件转化成zip文件
     * @param indexId
     * @param response
     */
   void fileToZip(Integer indexId,HttpServletResponse response);

    /**
     * 根据id内容全部删除文件
     * @param indexId
     * @return
     */
    ResponseResult deleteIndexFilesByIndexId(Integer indexId);
}
